//洛谷P1706 全排列问题
#include <stdio.h>
int nums[10], path[10], on_path[10], n;
void dfs(int k)
{
    if (k == n + 1)
    {
        for (int i = 1; i <= n; i++)
        {
            printf("    %d", path[i]);
        }
        printf("\n");
        return;
    }
    for (int i = 1; i <= n; i++)
    {
        if (!on_path[i])
        {
            path[k] = nums[i];
            on_path[i] = 1;
            dfs(k + 1);
            on_path[i] = 0;
        }
    }
}

int main()
{

    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {
        nums[i] = i;
    }
    dfs(1);
}
